package com.myBase.core.common.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;

import com.myBase.core.entity.Goldcoin;

/**
 * 项目名称：eBei-web    
 * 类名称：EBeiGoldCoinDateUtil    
 * 类描述：时间相关操作的工具类    
 * 创建人：wj    
 * 创建时间：2017年5月5日 下午6:18:58    
 * 修改人：wj    
 * 修改时间：2017年5月5日 下午6:18:58    
 * 修改备注：    
 * @version     
 *
 */
public class EBeiGoldCoinDateUtil {
    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");

    /**
     * * checkDateBetween(日期 dateCheck 在日期 dateBegin 和 日期 dateEnd 之间返回true,否则返回false) 
     * @param   dateCheck 待检测日期
     * @param   dateBegin 开始时间
     * @param   dateEnd   结束时间
     * @return boolean   
     * @Exception 异常对象    
     * @since  CodingExample　Ver(编码范例查看) 1.1
     */
    public static boolean checkDateBetween(Date dateCheck, Date dateBegin, Date dateEnd) {
        if (dateBegin.getTime() <= dateCheck.getTime() && dateCheck.getTime() <= dateEnd.getTime()) {
            return true;
        }
        return false;
    }

    /**
     * * getBeginAndEnd(返回该该金币活动金币的开始使用时间和失效时间)
     * @param   Goldcoin goldcoin表对应实体
     * @return HashMap<String, Date>    
     * @Exception 异常对象    
     * @since  CodingExample　Ver(编码范例查看) 1.1
     */
    public static HashMap<String, Date> getBeginAndEnd(Goldcoin goldCoin) {
        HashMap<String, Date> map = new HashMap<String, Date>();
        String goldCoinvaliditystyle = goldCoin.getGoldcoinvaliditystyle();//金币有限期类型: 固定时间段 01,按季度计算有效期 02,有效天数 03
        Date now = new Date();
        switch (goldCoinvaliditystyle) {
        case "01":
            map.put("beginTime", goldCoin.getGoldcoinvaliditystart());
            map.put("endTime", goldCoin.getGoldcoinvalidityend());
            break;
        case "02":
            map.put("beginTime", now);
            map.put("endTime", goldCoin.getGoldcoinvalidityend());
            break;
        case "03":
            map.put("beginTime", now);
            map.put("endTime", new Date(now.getTime() + goldCoin.getGoldcoinvalidityday() * 24 * 60 * 60 * 1000));
            break;
        default:
            map.put("beginTime", now);
            map.put("endTime", now);
            break;
        }
        return map;
    }

    /**
     * getyyyyMMddHHmmss(将日期格式转化为 2017-01-01 00:00:00 的格式)
     */
    public static String getyyyyMMddHHmmss(Date date) {
        return sdf.format(date);
    }

}
